package raf;

import java.io.IOException;
import java.io.RandomAccessFile;

import java.util.Scanner;

/**
 * 简易记事本工具
 * 程序启动后要求用户输入一个文件名，然后对该文件进行写操作。
 * 之后用户输入的【每一行】字符串都写入到该文件中，写入文件的数据不用考虑换行问题
 * 当用户单独输入：“exit”时程序退出
 */
public class Note {
    public static void main(String[] args) throws IOException {
/*
1：首先获取用户输入的文件名（字符串）
2：:利用该文件名创建RandomAccessFile就可以对该文件操作了
            3:循环进行下面的工作
              3.1:输入用户输入的一行字符串
              3.2:判断是否为exit（exit翻译过来是存在）,如果是则应当终止循环.
              3.3:如果不是exit,将该字符串转换为一组字节
              3.4:将转换的字节写入到文件中
            4:关闭RAF,程序结束.
         */
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个文件名（txt结尾的！）");
        String filename = scanner.nextLine();
       RandomAccessFile far=new RandomAccessFile(filename,"rw");
        System.out.println("请开始输入内容,当单独输入exit时退出.");
        while (true) {
            String line = scanner.nextLine();
            //当字符串字面量equals一个变量时,要用下面的方式判断,避免空指针的发生
            if ("exit".equals(line)) {//line是null时,返回false.反过来写就会空指针!
                break;
            }
            byte[] data = scanner.nextLine().getBytes("UTF-8");
            far.write(data);
        }
        System.out.println("再见");
        far.close();
    }
}